#include <stdio.h>
#include <math.h>



//喝汽水，1瓶汽水1元，2个空瓶可以换一瓶汽水，给20元，可以喝多少汽水（编程实现）。

//int sodaPop(int unitPrice,int condition,int money){
//    int sum = 0;
//    int sum_1 = 0;
//   while(money >= unitPrice){
//       sum++;
//       sum_1++;
//       money--;
//       if(sum_1 == condition){
//           money++;
//           sum_1 = 0;
//       }
//   }
//    return sum;
//}
//
//int main() {
//
//    printf("%d\n",sodaPop(1,2,20));
//    return 0;
//}

//打印菱形
//void lozenge(int side){
//    int sum = side/2;
//    int This = 1;
//    int flag = 0;
//    for(int i = 0;i < side;i++){
//        if(flag == 0){
//            for(int j = 0; j < side;j++){
//                if(j >=sum && j < sum+This ){
//                    printf("* ");
//                } else{
//                    printf("  ");
//                }
//            }
//            sum--;
//            This = This + 2;
//            printf("\n");
//            if(sum ==1){
//                flag = 1;
//            }
//        }
//       if(flag == 1){
//            for(int j = 0; j < side;j++){
//                if(j >=sum && j < sum+This ){
//                    printf("* ");
//                } else{
//                    printf("  ");
//                }
//            }
//            sum++;
//            This = This - 2;
//            printf("\n");
//        }
//    }
//}
//
//int main(){
//    lozenge(13);
//
//    return 0;
//}

//求出0～100000之间的所有“水仙花数”并输出。
//
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，如:153＝1^3＋5^3＋3^3，则153是一个“水仙花数”。

void flower(int originate,int end){
    for(int i = originate;i <= end;i++){
        int temp = i;
        int len=0;
        int arr[4] = {0};
        int nub = 0;
        int sum = 0;
        while (temp){
            len++;
            arr[nub] = temp%10;
            temp = temp/10;
            nub++;
        }
        for(int j = 0;j < len;j++){
            sum = sum + pow(arr[j],len);
        }
        if(i == sum){
            printf("%d ",sum);
        }
    }
}

int main(){
    flower(0,100000);
    return 0;
}